<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>初识promise</title>
</head>
<body>
<!--
    Promise 是什么？
        1. 抽象表达：
            (1). Promise 是一门新的技术（ES6 提出的）。
            (2). Promise 是 JS 中异步编程的新方案（旧方案是谁？--- 纯回调）。
        2. 具体表达：
            (1). 从语法上来说：Promise 是一个内置构造函数。（构造函数 => 通过 new 关键字创建对象）。
            (2). 从功能上来说：Promise 的实例对象可以用来封装一个异步操作，并可以获取其 成功/失败 的值。
 -->
<script type="text/javascript">
    /*
        1. Promise 不是回调，是一个内置的构造函数，是程序员自己 new 调用的。
        2. new Promise 的时候，要传入一个回调函数，它是同步的回调，会立即在主线程上执行，它被称为 executor 函数。
        3. 每一个 Promise 实例都有 3 种状态，分别是：初始化(pending)、成功(fulfilled)、失败(rejected)
        4. 每一个 Promise 实例在刚被 new 出来的那一刻，状态都是初始化（pending）
        5. executor 函数会接收到 2 个参数，它们都是函数，分别用形参：resolve、reject 接收
            (1). 调用 resolve，会让 Promise 实例状态变为：成功（fulfilled），同时可以指定成功的 value
            (2). 调用 reject，会让 Promise 实例状态变为：失败（rejected），同时可以指定失败的 reason
     */
    // 创建一个 Promise 实例对象
    const p = new Promise((resolve, reject) => {
        resolve('ok')
    })
    console.log('@', p) // 一般不把 Promise 实例做控制台输出
</script>
</body>
</html>
